package com.cman777.springc.mybatis.util;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.cman777.springc.common.bean.response.BasePageResponse;

import java.io.Serializable;

/**
 * @author chenzhicong
 * @time 2020/3/16 19:26
 * @description
 */
public class PageUtil {
    /**
     * 避免重复代码,通过page对象获取分页返回对象
     */
    public static <T, E extends BasePageResponse<T>> E page2PageResponse
    (IPage<T> page, E response) {
        response.setList(page.getRecords());
        response.setPageNum(page.getCurrent());
        response.setPageSize(page.getSize());
        response.setTotal(page.getTotal());
        return response;
    }


    /**
     * 避免重复代码，通过page获取一个没有list但其他相同的分页返回对象，
     * 因为有时候会对使用分页插件查出来的实体转换为vo。
     */
    public static <T, E extends BasePageResponse> E getInitPageFromPageNoList(IPage<T> page, E response) {
        response.setPageNum(page.getCurrent());
        response.setPageSize(page.getSize());
        response.setTotal(page.getTotal());
        return response;
    }
}
